package collection;

import com.sun.org.apache.regexp.internal.RE;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/*集合的排序---Point对象*/
public class SortPoint {
    public static void main(String[] args) {
        List<Point> list=new ArrayList<>();
        list.add(new Point(1,3));
        list.add(new Point(45,8));
        list.add(new Point(8,12));
        list.add(new Point(9,15));
        list.add(new Point(12,15));
        System.out.println(list);

        list.sort((o1, o2) -> {
            int len1= o1.getX()*o1.getX()+o1.getY()*o1.getY();
            int len2= o2.getX()*o2.getX()+o2.getY()*o2.getY();
            return len1-len2;
        });

        System.out.println(list);

        //自定义排序
       /* Collections.sort(list, new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                int len1= o1.getX()*o1.getX()+o1.getY()*o1.getY();
                int len2= o2.getX()*o2.getX()+o2.getY()*o2.getY();
                return len1-len2;

               // return o1.getX()-o2.getX();
               // return o2.getY()-o1.getY();
            }
        });
        */
        Collections.sort(list,((o1, o2) -> {
            int len1= o1.getX()*o1.getX()+o1.getY()*o1.getY();
            int len2= o2.getX()*o2.getX()+o2.getY()*o2.getY();
            return len1-len2;
        }));
        System.out.println(list);


    }
}
